package com.itheima.d2_reflect;

import java.io.*;
import java.util.Properties;

/*
     目标：获取Class对象。

     获取Class对象的三种方式
        1, Class c1 = 类名.class
        2, 调用Class提供方法：public static Class forName(String package)；
        3, Object提供的方法： public Class getClass()；  Class c3 = 对象.getClass();
 */
public class Test1Class {
    // 1, Class c1 = 类名.class
    public void method1() {
        final Class className = Cat.class;
        final String name = className.getName();
        System.out.println("类名是：" + name);
    }

    // 2, 调用Class提供方法：public static Class forName(String package)；
    public void method2(Cat cat) {
        Class name = cat.getClass();
        System.out.println("第二种类名是：" + name);
    }

    // 3, Object提供的方法： public Class getClass()；  Class c3 = 对象.getClass();
    public void method3() throws IOException {
        final FileInputStream fis = new FileInputStream("D:\\debug\\className.properties");
        final Properties ppt = new Properties();
        ppt.load(fis);
        final Object catClassName = ppt.get("catClassName");
        System.out.println(catClassName);
    }

}
